package com.ourteam.product.model.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 IRKT 2017
 * Auto Generate Date : 2017-11-17 11:00:59
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductModelObjectRelateDAOQueryBean extends BaseQueryBean {
    public ProductModelObjectRelateDAOQueryBean() {
        super();
    }

    public ProductModelObjectRelateDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductModelObjectRelateDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.Id, "id");
        }
    }

    public void addRelateCodeSelectProperty() {
        addRelateCodeSelectProperty("relateCode");
    }

    public void addRelateCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelateCode, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelateCode,
                "relateCode");
        }
    }

    public void addRelateNameSelectProperty() {
        addRelateNameSelectProperty("relateName");
    }

    public void addRelateNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelateName, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelateName,
                "relateName");
        }
    }

    public void addObjectIdSelectProperty() {
        addObjectIdSelectProperty("objectId");
    }

    public void addObjectIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectId, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectId, "objectId");
        }
    }

    public void addRelatedObjectIdSelectProperty() {
        addRelatedObjectIdSelectProperty("relatedObjectId");
    }

    public void addRelatedObjectIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectId,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectId,
                "relatedObjectId");
        }
    }

    public void addRelatedTypeSelectProperty() {
        addRelatedTypeSelectProperty("relatedType");
    }

    public void addRelatedTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedType, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedType,
                "relatedType");
        }
    }

    public void addRelatedConfigSelectProperty() {
        addRelatedConfigSelectProperty("relatedConfig");
    }

    public void addRelatedConfigSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedConfig, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedConfig,
                "relatedConfig");
        }
    }

    public void addSortIndexSelectProperty() {
        addSortIndexSelectProperty("sortIndex");
    }

    public void addSortIndexSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.SortIndex, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.SortIndex,
                "sortIndex");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.Remarks, "remarks");
        }
    }

    public void addRelatedObjectNameSelectProperty() {
        addRelatedObjectNameSelectProperty("relatedObjectName");
    }

    public void addRelatedObjectNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectName,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectName,
                "relatedObjectName");
        }
    }

    public void addRelatedObjectTypeSelectProperty() {
        addRelatedObjectTypeSelectProperty("relatedObjectType");
    }

    public void addRelatedObjectTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectType,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectType,
                "relatedObjectType");
        }
    }

    public void addRelatedObjectRemarksSelectProperty() {
        addRelatedObjectRemarksSelectProperty("relatedObjectRemarks");
    }

    public void addRelatedObjectRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectRemarks,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectRemarks,
                "relatedObjectRemarks");
        }
    }

    public void addRelatedObjectPackageIdSelectProperty() {
        addRelatedObjectPackageIdSelectProperty("relatedObjectPackageId");
    }

    public void addRelatedObjectPackageIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectPackageId,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectPackageId,
                "relatedObjectPackageId");
        }
    }

    public void addRelatedObjectPackageNameSelectProperty() {
        addRelatedObjectPackageNameSelectProperty("relatedObjectPackageName");
    }

    public void addRelatedObjectPackageNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectPackageName,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.RelatedObjectPackageName,
                "relatedObjectPackageName");
        }
    }

    public void addObjectNameSelectProperty() {
        addObjectNameSelectProperty("objectName");
    }

    public void addObjectNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectName, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectName,
                "objectName");
        }
    }

    public void addObjectTypeSelectProperty() {
        addObjectTypeSelectProperty("objectType");
    }

    public void addObjectTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectType, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectType,
                "objectType");
        }
    }

    public void addObjectRemarksSelectProperty() {
        addObjectRemarksSelectProperty("objectRemarks");
    }

    public void addObjectRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectRemarks, aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectRemarks,
                "objectRemarks");
        }
    }

    public void addObjectPackageIdSelectProperty() {
        addObjectPackageIdSelectProperty("objectPackageId");
    }

    public void addObjectPackageIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectPackageId,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectPackageId,
                "objectPackageId");
        }
    }

    public void addObjectPackageNameSelectProperty() {
        addObjectPackageNameSelectProperty("objectPackageName");
    }

    public void addObjectPackageNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectPackageName,
                aAlias);
        } else {
            addSelectProperty(IProductModelObjectRelateDAO.ObjectPackageName,
                "objectPackageName");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addRelateCodeSelectProperty();

        addRelateNameSelectProperty();

        addObjectIdSelectProperty();

        addRelatedObjectIdSelectProperty();

        addRelatedTypeSelectProperty();

        addRelatedConfigSelectProperty();

        addSortIndexSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addRelatedObjectNameSelectProperty();

        addRelatedObjectTypeSelectProperty();

        addRelatedObjectRemarksSelectProperty();

        addRelatedObjectPackageIdSelectProperty();

        addRelatedObjectPackageNameSelectProperty();

        addObjectNameSelectProperty();

        addObjectTypeSelectProperty();

        addObjectRemarksSelectProperty();

        addObjectPackageIdSelectProperty();

        addObjectPackageNameSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductModelObjectRelateDAOQueryBean> {
        protected Criteria(ProductModelObjectRelateDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductModelObjectRelateDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.Id + " is not null AND " +
                IProductModelObjectRelateDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.Id +
                " is null OR " + IProductModelObjectRelateDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.Id + " is null OR " +
                IProductModelObjectRelateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Id + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andRelateCodeIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " is null");

            return this;
        }

        public Criteria andRelateCodeIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelateCode +
                " is not null");

            return this;
        }

        public Criteria andRelateCodeIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelateCode +
                " is not null AND " + IProductModelObjectRelateDAO.RelateCode +
                " <> ''");

            return this;
        }

        public Criteria andRelateCodeIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.RelateCode +
                " is null OR " + IProductModelObjectRelateDAO.RelateCode +
                " = '')");

            return this;
        }

        public Criteria andRelateCodeEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " = ",
                value, "relateCode");

            return this;
        }

        public Criteria andRelateCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " <>",
                value, "relateCode");

            return this;
        }

        public Criteria andRelateCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode +
                " is null OR " + IProductModelObjectRelateDAO.RelateCode +
                " <>", value, "relateCode");

            return this;
        }

        public Criteria andRelateCodeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " >", value,
                "relateCode");

            return this;
        }

        public Criteria andRelateCodeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " >=",
                value, "relateCode");

            return this;
        }

        public Criteria andRelateCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " <", value,
                "relateCode");

            return this;
        }

        public Criteria andRelateCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " <=",
                value, "relateCode");

            return this;
        }

        public Criteria andRelateCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " like",
                buffer.toString(), "relateCode");

            return this;
        }

        public Criteria andRelateCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " not like",
                buffer.toString(), "relateCode");

            return this;
        }

        public Criteria andRelateCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andRelateCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateCode + " in",
                    values, "relateCode");

                return this;
            }
        }

        public Criteria andRelateCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelateCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateCode +
                    " not in", values, "relateCode");

                return this;
            }
        }

        public Criteria andRelateCodeIn(String[] values) {
            if (values.length == 1) {
                return andRelateCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateCode + " in",
                    Arrays.asList(values), "relateCode");

                return this;
            }
        }

        public Criteria andRelateCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andRelateCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateCode +
                    " not in", Arrays.asList(values), "relateCode");

                return this;
            }
        }

        public Criteria andRelateCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateCodeBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode + " between",
                value1, value2, "relateCode");

            return this;
        }

        public Criteria andRelateCodeNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelateCode +
                " not between", value1, value2, "relateCode");

            return this;
        }

        public Criteria andRelateNameIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " is null");

            return this;
        }

        public Criteria andRelateNameIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelateName +
                " is not null");

            return this;
        }

        public Criteria andRelateNameIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelateName +
                " is not null AND " + IProductModelObjectRelateDAO.RelateName +
                " <> ''");

            return this;
        }

        public Criteria andRelateNameIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.RelateName +
                " is null OR " + IProductModelObjectRelateDAO.RelateName +
                " = '')");

            return this;
        }

        public Criteria andRelateNameEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " = ",
                value, "relateName");

            return this;
        }

        public Criteria andRelateNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " <>",
                value, "relateName");

            return this;
        }

        public Criteria andRelateNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateName +
                " is null OR " + IProductModelObjectRelateDAO.RelateName +
                " <>", value, "relateName");

            return this;
        }

        public Criteria andRelateNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " >", value,
                "relateName");

            return this;
        }

        public Criteria andRelateNameGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " >=",
                value, "relateName");

            return this;
        }

        public Criteria andRelateNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " <", value,
                "relateName");

            return this;
        }

        public Criteria andRelateNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " <=",
                value, "relateName");

            return this;
        }

        public Criteria andRelateNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelateName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelateName + " like",
                buffer.toString(), "relateName");

            return this;
        }

        public Criteria andRelateNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelateName + " not like",
                buffer.toString(), "relateName");

            return this;
        }

        public Criteria andRelateNameIn(List<String> values) {
            if (values.size() == 1) {
                return andRelateNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateName + " in",
                    values, "relateName");

                return this;
            }
        }

        public Criteria andRelateNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelateNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateName +
                    " not in", values, "relateName");

                return this;
            }
        }

        public Criteria andRelateNameIn(String[] values) {
            if (values.length == 1) {
                return andRelateNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateName + " in",
                    Arrays.asList(values), "relateName");

                return this;
            }
        }

        public Criteria andRelateNameNotIn(String[] values) {
            if (values.length == 1) {
                return andRelateNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelateName +
                    " not in", Arrays.asList(values), "relateName");

                return this;
            }
        }

        public Criteria andRelateNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateNameBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelateName + " between",
                value1, value2, "relateName");

            return this;
        }

        public Criteria andRelateNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelateName +
                " not between", value1, value2, "relateName");

            return this;
        }

        public Criteria andObjectIdIsNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " is null");

            return this;
        }

        public Criteria andObjectIdIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectId +
                " is not null");

            return this;
        }

        public Criteria andObjectIdIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.ObjectId +
                " is not null AND " + IProductModelObjectRelateDAO.ObjectId +
                " <> ''");

            return this;
        }

        public Criteria andObjectIdIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.ObjectId +
                " is null OR " + IProductModelObjectRelateDAO.ObjectId +
                " = '')");

            return this;
        }

        public Criteria andObjectIdEqualTo(long value) {
            return andObjectIdEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " = ", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdNotEqualTo(long value) {
            return andObjectIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " <>", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdNotEqualToOrIsNull(long value) {
            return andObjectIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andObjectIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId +
                " is null OR " + IProductModelObjectRelateDAO.ObjectId + " <>",
                value, "objectId");

            return this;
        }

        public Criteria andObjectIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdGreaterThan(long value) {
            return andObjectIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andObjectIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " >", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(long value) {
            return andObjectIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " >=", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdLessThan(long value) {
            return andObjectIdLessThan(Long.valueOf(value));
        }

        public Criteria andObjectIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " <", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualTo(long value) {
            return andObjectIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " <=", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdIn(long[] values) {
            if (values.length == 1) {
                return andObjectIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectId + " in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(long[] values) {
            if (values.length == 1) {
                return andObjectIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectId + " not in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectId + " in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectId + " not in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectId + " in",
                    Arrays.asList(values), "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectId + " not in",
                    Arrays.asList(values), "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andObjectIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId + " between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andObjectIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId +
                " not between", value1, value2, "objectId");

            return this;
        }

        public Criteria andObjectIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectId +
                " not between", value1, value2, "objectId");

            return this;
        }

        public Criteria andRelatedObjectIdIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " is null");

            return this;
        }

        public Criteria andRelatedObjectIdIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " is not null");

            return this;
        }

        public Criteria andRelatedObjectIdIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " is not null AND " +
                IProductModelObjectRelateDAO.RelatedObjectId + " <> ''");

            return this;
        }

        public Criteria andRelatedObjectIdIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.RelatedObjectId +
                " is null OR " + IProductModelObjectRelateDAO.RelatedObjectId +
                " = '')");

            return this;
        }

        public Criteria andRelatedObjectIdEqualTo(long value) {
            return andRelatedObjectIdEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " = ",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualTo(long value) {
            return andRelatedObjectIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " <>",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualToOrIsNull(long value) {
            return andRelatedObjectIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " is null OR " + IProductModelObjectRelateDAO.RelatedObjectId +
                " <>", value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThan(long value) {
            return andRelatedObjectIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " >",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualTo(long value) {
            return andRelatedObjectIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " >=",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdLessThan(long value) {
            return andRelatedObjectIdLessThan(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " <",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdLessThanOrEqualTo(long value) {
            return andRelatedObjectIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " <=",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdIn(long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                    " in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdNotIn(long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                    " not in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedObjectIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                    " in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedObjectIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                    " not in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                    " in", Arrays.asList(values), "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                    " not in", Arrays.asList(values), "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " not between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectId +
                " not between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedTypeIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " is null");

            return this;
        }

        public Criteria andRelatedTypeIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedType +
                " is not null");

            return this;
        }

        public Criteria andRelatedTypeIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedType +
                " is not null AND " + IProductModelObjectRelateDAO.RelatedType +
                " <> ''");

            return this;
        }

        public Criteria andRelatedTypeIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.RelatedType +
                " is null OR " + IProductModelObjectRelateDAO.RelatedType +
                " = '')");

            return this;
        }

        public Criteria andRelatedTypeEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " = ",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " <>",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType +
                " is null OR " + IProductModelObjectRelateDAO.RelatedType +
                " <>", value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " >",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " >=",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " <",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " <=",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " like",
                buffer.toString(), "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedType +
                " not like", buffer.toString(), "relatedType");

            return this;
        }

        public Criteria andRelatedTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedType + " in",
                    values, "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedType +
                    " not in", values, "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeIn(String[] values) {
            if (values.length == 1) {
                return andRelatedTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedType + " in",
                    Arrays.asList(values), "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedType +
                    " not in", Arrays.asList(values), "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType + " between",
                value1, value2, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedType +
                " not between", value1, value2, "relatedType");

            return this;
        }

        public Criteria andRelatedConfigIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " is null");

            return this;
        }

        public Criteria andRelatedConfigIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " is not null");

            return this;
        }

        public Criteria andRelatedConfigIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " is not null AND " +
                IProductModelObjectRelateDAO.RelatedConfig + " <> ''");

            return this;
        }

        public Criteria andRelatedConfigIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.RelatedConfig +
                " is null OR " + IProductModelObjectRelateDAO.RelatedConfig +
                " = '')");

            return this;
        }

        public Criteria andRelatedConfigEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " = ",
                value, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedConfig);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedConfigEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " <>",
                value, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " is null OR " + IProductModelObjectRelateDAO.RelatedConfig +
                " <>", value, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedConfig);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedConfigNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " >",
                value, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedConfig);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedConfigGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " >=",
                value, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedConfig);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedConfigGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " <",
                value, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedConfig);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedConfigLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " <=",
                value, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedConfig);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedConfigLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " like",
                buffer.toString(), "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " not like", buffer.toString(), "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedConfigEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                    " in", values, "relatedConfig");

                return this;
            }
        }

        public Criteria andRelatedConfigNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedConfigNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                    " not in", values, "relatedConfig");

                return this;
            }
        }

        public Criteria andRelatedConfigIn(String[] values) {
            if (values.length == 1) {
                return andRelatedConfigEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                    " in", Arrays.asList(values), "relatedConfig");

                return this;
            }
        }

        public Criteria andRelatedConfigNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedConfigNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                    " not in", Arrays.asList(values), "relatedConfig");

                return this;
            }
        }

        public Criteria andRelatedConfigIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedConfigBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " between", value1, value2, "relatedConfig");

            return this;
        }

        public Criteria andRelatedConfigNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedConfig +
                " not between", value1, value2, "relatedConfig");

            return this;
        }

        public Criteria andSortIndexIsNull() {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " is null");

            return this;
        }

        public Criteria andSortIndexIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.SortIndex +
                " is not null");

            return this;
        }

        public Criteria andSortIndexIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.SortIndex +
                " is not null AND " + IProductModelObjectRelateDAO.SortIndex +
                " <> ''");

            return this;
        }

        public Criteria andSortIndexIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.SortIndex +
                " is null OR " + IProductModelObjectRelateDAO.SortIndex +
                " = '')");

            return this;
        }

        public Criteria andSortIndexEqualTo(int value) {
            return andSortIndexEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " = ", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.SortIndex);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexNotEqualTo(int value) {
            return andSortIndexNotEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexNotEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " <>", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotEqualToOrIsNull(int value) {
            return andSortIndexNotEqualToOrIsNull(Integer.valueOf(value));
        }

        public Criteria andSortIndexNotEqualToOrIsNull(java.lang.Integer value) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex +
                " is null OR " + IProductModelObjectRelateDAO.SortIndex +
                " <>", value, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.SortIndex);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexGreaterThan(int value) {
            return andSortIndexGreaterThan(Integer.valueOf(value));
        }

        public Criteria andSortIndexGreaterThan(java.lang.Integer value) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " >", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.SortIndex);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(int value) {
            return andSortIndexGreaterThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(
            java.lang.Integer value) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " >=", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.SortIndex);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexLessThan(int value) {
            return andSortIndexLessThan(Integer.valueOf(value));
        }

        public Criteria andSortIndexLessThan(java.lang.Integer value) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " <", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.SortIndex);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualTo(int value) {
            return andSortIndexLessThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexLessThanOrEqualTo(java.lang.Integer value) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " <=", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.SortIndex);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexIn(int[] values) {
            if (values.length == 1) {
                return andSortIndexEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.SortIndex + " in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(int[] values) {
            if (values.length == 1) {
                return andSortIndexNotEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.SortIndex +
                    " not in", values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andSortIndexEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.SortIndex + " in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andSortIndexNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.SortIndex +
                    " not in", values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andSortIndexEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.SortIndex + " in",
                    Arrays.asList(values), "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andSortIndexNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.SortIndex +
                    " not in", Arrays.asList(values), "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexBetween(int value1, int value2) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex + " between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotBetween(int value1, int value2) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex +
                " not between", value1, value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductModelObjectRelateDAO.SortIndex +
                " not between", value1, value2, "sortIndex");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductModelObjectRelateDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.Status +
                " is not null AND " + IProductModelObjectRelateDAO.Status +
                " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.Status +
                " is null OR " + IProductModelObjectRelateDAO.Status +
                " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Status + " = ", value,
                "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Status + " <>", value,
                "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.Status + " is null OR " +
                IProductModelObjectRelateDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.Status + " >", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Status + " >=", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.Status + " <", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Status + " <=", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.Status + " in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.Status + " not in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.Status + " between",
                value1, value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.Remarks +
                " is not null AND " + IProductModelObjectRelateDAO.Remarks +
                " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.Remarks +
                " is null OR " + IProductModelObjectRelateDAO.Remarks +
                " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " is null OR " +
                IProductModelObjectRelateDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " >", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " <", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.Remarks + " in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andRelatedObjectNameIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " is null");

            return this;
        }

        public Criteria andRelatedObjectNameIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " is not null");

            return this;
        }

        public Criteria andRelatedObjectNameIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " is not null AND " +
                IProductModelObjectRelateDAO.RelatedObjectName + " <> ''");

            return this;
        }

        public Criteria andRelatedObjectNameIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.RelatedObjectName +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectName + " = '')");

            return this;
        }

        public Criteria andRelatedObjectNameEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " = ", value, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectNameEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " <>", value, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectName + " <>", value,
                "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName + " >",
                value, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " >=", value, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName + " <",
                value, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectNameLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " <=", value, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " like", buffer.toString(), "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " not like", buffer.toString(), "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                    " in", values, "relatedObjectName");

                return this;
            }
        }

        public Criteria andRelatedObjectNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                    " not in", values, "relatedObjectName");

                return this;
            }
        }

        public Criteria andRelatedObjectNameIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                    " in", Arrays.asList(values), "relatedObjectName");

                return this;
            }
        }

        public Criteria andRelatedObjectNameNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                    " not in", Arrays.asList(values), "relatedObjectName");

                return this;
            }
        }

        public Criteria andRelatedObjectNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectNameBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " between", value1, value2, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectNameNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectName +
                " not between", value1, value2, "relatedObjectName");

            return this;
        }

        public Criteria andRelatedObjectTypeIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " is null");

            return this;
        }

        public Criteria andRelatedObjectTypeIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " is not null");

            return this;
        }

        public Criteria andRelatedObjectTypeIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " is not null AND " +
                IProductModelObjectRelateDAO.RelatedObjectType + " <> ''");

            return this;
        }

        public Criteria andRelatedObjectTypeIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.RelatedObjectType +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectType + " = '')");

            return this;
        }

        public Criteria andRelatedObjectTypeEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " = ", value, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectTypeEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " <>", value, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectType + " <>", value,
                "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectTypeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType + " >",
                value, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectTypeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " >=", value, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType + " <",
                value, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectTypeLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " <=", value, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " like", buffer.toString(), "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " not like", buffer.toString(), "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                    " in", values, "relatedObjectType");

                return this;
            }
        }

        public Criteria andRelatedObjectTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                    " not in", values, "relatedObjectType");

                return this;
            }
        }

        public Criteria andRelatedObjectTypeIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                    " in", Arrays.asList(values), "relatedObjectType");

                return this;
            }
        }

        public Criteria andRelatedObjectTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                    " not in", Arrays.asList(values), "relatedObjectType");

                return this;
            }
        }

        public Criteria andRelatedObjectTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectTypeBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " between", value1, value2, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectTypeNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectType +
                " not between", value1, value2, "relatedObjectType");

            return this;
        }

        public Criteria andRelatedObjectRemarksIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " is null");

            return this;
        }

        public Criteria andRelatedObjectRemarksIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " is not null");

            return this;
        }

        public Criteria andRelatedObjectRemarksIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " is not null AND " +
                IProductModelObjectRelateDAO.RelatedObjectRemarks + " <> ''");

            return this;
        }

        public Criteria andRelatedObjectRemarksIsEmpty() {
            addCriterion("(" +
                IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectRemarks + " = '')");

            return this;
        }

        public Criteria andRelatedObjectRemarksEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " = ", value, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectRemarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectRemarksEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " <>", value, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectRemarks + " <>",
                value, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectRemarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectRemarksNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " >", value, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectRemarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectRemarksGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksGreaterThanOrEqualTo(
            String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " >=", value, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectRemarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " <", value, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectRemarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectRemarksLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " <=", value, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectRemarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " like", buffer.toString(), "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " not like", buffer.toString(), "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                    " in", values, "relatedObjectRemarks");

                return this;
            }
        }

        public Criteria andRelatedObjectRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                    " not in", values, "relatedObjectRemarks");

                return this;
            }
        }

        public Criteria andRelatedObjectRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                    " in", Arrays.asList(values), "relatedObjectRemarks");

                return this;
            }
        }

        public Criteria andRelatedObjectRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                    " not in", Arrays.asList(values), "relatedObjectRemarks");

                return this;
            }
        }

        public Criteria andRelatedObjectRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectRemarksBetween(String value1,
            String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " between", value1, value2, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectRemarksNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectRemarks +
                " not between", value1, value2, "relatedObjectRemarks");

            return this;
        }

        public Criteria andRelatedObjectPackageIdIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " is null");

            return this;
        }

        public Criteria andRelatedObjectPackageIdIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " is not null");

            return this;
        }

        public Criteria andRelatedObjectPackageIdIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " is not null AND " +
                IProductModelObjectRelateDAO.RelatedObjectPackageId + " <> ''");

            return this;
        }

        public Criteria andRelatedObjectPackageIdIsEmpty() {
            addCriterion("(" +
                IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectPackageId + " = '')");

            return this;
        }

        public Criteria andRelatedObjectPackageIdEqualTo(long value) {
            return andRelatedObjectPackageIdEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectPackageIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " = ", value, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageIdEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdNotEqualTo(long value) {
            return andRelatedObjectPackageIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectPackageIdNotEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " <>", value, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdNotEqualToOrIsNull(long value) {
            return andRelatedObjectPackageIdNotEqualToOrIsNull(Long.valueOf(
                    value));
        }

        public Criteria andRelatedObjectPackageIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectPackageId + " <>",
                value, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdGreaterThan(long value) {
            return andRelatedObjectPackageIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andRelatedObjectPackageIdGreaterThan(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " >", value, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdGreaterThanOrEqualTo(
            long value) {
            return andRelatedObjectPackageIdGreaterThanOrEqualTo(Long.valueOf(
                    value));
        }

        public Criteria andRelatedObjectPackageIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " >=", value, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdLessThan(long value) {
            return andRelatedObjectPackageIdLessThan(Long.valueOf(value));
        }

        public Criteria andRelatedObjectPackageIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " <", value, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageIdLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdLessThanOrEqualTo(long value) {
            return andRelatedObjectPackageIdLessThanOrEqualTo(Long.valueOf(
                    value));
        }

        public Criteria andRelatedObjectPackageIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " <=", value, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdIn(long[] values) {
            if (values.length == 1) {
                return andRelatedObjectPackageIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                    " in", values, "relatedObjectPackageId");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageIdNotIn(long[] values) {
            if (values.length == 1) {
                return andRelatedObjectPackageIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                    " not in", values, "relatedObjectPackageId");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedObjectPackageIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                    " in", values, "relatedObjectPackageId");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageIdNotIn(
            List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedObjectPackageIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                    " not in", values, "relatedObjectPackageId");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedObjectPackageIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                    " in", Arrays.asList(values), "relatedObjectPackageId");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedObjectPackageIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                    " not in", Arrays.asList(values), "relatedObjectPackageId");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageIdIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageIdBetween(long value1,
            long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " between", value1, value2, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdBetween(
            java.lang.Long value1, java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " between", value1, value2, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdNotBetween(long value1,
            long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " not between", value1, value2, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageIdNotBetween(
            java.lang.Long value1, java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageId +
                " not between", value1, value2, "relatedObjectPackageId");

            return this;
        }

        public Criteria andRelatedObjectPackageNameIsNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " is null");

            return this;
        }

        public Criteria andRelatedObjectPackageNameIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " is not null");

            return this;
        }

        public Criteria andRelatedObjectPackageNameIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " is not null AND " +
                IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " <> ''");

            return this;
        }

        public Criteria andRelatedObjectPackageNameIsEmpty() {
            addCriterion("(" +
                IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " = '')");

            return this;
        }

        public Criteria andRelatedObjectPackageNameEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " = ", value, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageNameEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " <>", value, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameNotEqualToOrIsNull(
            String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " is null OR " +
                IProductModelObjectRelateDAO.RelatedObjectPackageName + " <>",
                value, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " >", value, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameGreaterThanOrEqualTo(
            String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " >=", value, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " <", value, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageNameLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameLessThanOrEqualTo(
            String value) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " <=", value, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.RelatedObjectPackageName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectPackageNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " like", buffer.toString(), "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " not like", buffer.toString(), "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectPackageNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                    " in", values, "relatedObjectPackageName");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedObjectPackageNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                    " not in", values, "relatedObjectPackageName");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageNameIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectPackageNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                    " in", Arrays.asList(values), "relatedObjectPackageName");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageNameNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedObjectPackageNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                    " not in", Arrays.asList(values), "relatedObjectPackageName");

                return this;
            }
        }

        public Criteria andRelatedObjectPackageNameIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectPackageNameBetween(String value1,
            String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " between", value1, value2, "relatedObjectPackageName");

            return this;
        }

        public Criteria andRelatedObjectPackageNameNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelObjectRelateDAO.RelatedObjectPackageName +
                " not between", value1, value2, "relatedObjectPackageName");

            return this;
        }

        public Criteria andObjectNameIsNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " is null");

            return this;
        }

        public Criteria andObjectNameIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectName +
                " is not null");

            return this;
        }

        public Criteria andObjectNameIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.ObjectName +
                " is not null AND " + IProductModelObjectRelateDAO.ObjectName +
                " <> ''");

            return this;
        }

        public Criteria andObjectNameIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.ObjectName +
                " is null OR " + IProductModelObjectRelateDAO.ObjectName +
                " = '')");

            return this;
        }

        public Criteria andObjectNameEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " = ",
                value, "objectName");

            return this;
        }

        public Criteria andObjectNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " <>",
                value, "objectName");

            return this;
        }

        public Criteria andObjectNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName +
                " is null OR " + IProductModelObjectRelateDAO.ObjectName +
                " <>", value, "objectName");

            return this;
        }

        public Criteria andObjectNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " >", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " >=",
                value, "objectName");

            return this;
        }

        public Criteria andObjectNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " <", value,
                "objectName");

            return this;
        }

        public Criteria andObjectNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " <=",
                value, "objectName");

            return this;
        }

        public Criteria andObjectNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " like",
                buffer.toString(), "objectName");

            return this;
        }

        public Criteria andObjectNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " not like",
                buffer.toString(), "objectName");

            return this;
        }

        public Criteria andObjectNameIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectName + " in",
                    values, "objectName");

                return this;
            }
        }

        public Criteria andObjectNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectName +
                    " not in", values, "objectName");

                return this;
            }
        }

        public Criteria andObjectNameIn(String[] values) {
            if (values.length == 1) {
                return andObjectNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectName + " in",
                    Arrays.asList(values), "objectName");

                return this;
            }
        }

        public Criteria andObjectNameNotIn(String[] values) {
            if (values.length == 1) {
                return andObjectNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectName +
                    " not in", Arrays.asList(values), "objectName");

                return this;
            }
        }

        public Criteria andObjectNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectNameBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName + " between",
                value1, value2, "objectName");

            return this;
        }

        public Criteria andObjectNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectName +
                " not between", value1, value2, "objectName");

            return this;
        }

        public Criteria andObjectTypeIsNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " is null");

            return this;
        }

        public Criteria andObjectTypeIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectType +
                " is not null");

            return this;
        }

        public Criteria andObjectTypeIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.ObjectType +
                " is not null AND " + IProductModelObjectRelateDAO.ObjectType +
                " <> ''");

            return this;
        }

        public Criteria andObjectTypeIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.ObjectType +
                " is null OR " + IProductModelObjectRelateDAO.ObjectType +
                " = '')");

            return this;
        }

        public Criteria andObjectTypeEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " = ",
                value, "objectType");

            return this;
        }

        public Criteria andObjectTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " <>",
                value, "objectType");

            return this;
        }

        public Criteria andObjectTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType +
                " is null OR " + IProductModelObjectRelateDAO.ObjectType +
                " <>", value, "objectType");

            return this;
        }

        public Criteria andObjectTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " >", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " >=",
                value, "objectType");

            return this;
        }

        public Criteria andObjectTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " <", value,
                "objectType");

            return this;
        }

        public Criteria andObjectTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " <=",
                value, "objectType");

            return this;
        }

        public Criteria andObjectTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " like",
                buffer.toString(), "objectType");

            return this;
        }

        public Criteria andObjectTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " not like",
                buffer.toString(), "objectType");

            return this;
        }

        public Criteria andObjectTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectType + " in",
                    values, "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectType +
                    " not in", values, "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeIn(String[] values) {
            if (values.length == 1) {
                return andObjectTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectType + " in",
                    Arrays.asList(values), "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andObjectTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectType +
                    " not in", Arrays.asList(values), "objectType");

                return this;
            }
        }

        public Criteria andObjectTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectTypeBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType + " between",
                value1, value2, "objectType");

            return this;
        }

        public Criteria andObjectTypeNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectType +
                " not between", value1, value2, "objectType");

            return this;
        }

        public Criteria andObjectRemarksIsNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " is null");

            return this;
        }

        public Criteria andObjectRemarksIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " is not null");

            return this;
        }

        public Criteria andObjectRemarksIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " is not null AND " +
                IProductModelObjectRelateDAO.ObjectRemarks + " <> ''");

            return this;
        }

        public Criteria andObjectRemarksIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.ObjectRemarks +
                " is null OR " + IProductModelObjectRelateDAO.ObjectRemarks +
                " = '')");

            return this;
        }

        public Criteria andObjectRemarksEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " = ",
                value, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectRemarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " <>",
                value, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " is null OR " + IProductModelObjectRelateDAO.ObjectRemarks +
                " <>", value, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectRemarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " >",
                value, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectRemarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectRemarksGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " >=",
                value, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectRemarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " <",
                value, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectRemarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " <=",
                value, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectRemarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " like",
                buffer.toString(), "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " not like", buffer.toString(), "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                    " in", values, "objectRemarks");

                return this;
            }
        }

        public Criteria andObjectRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                    " not in", values, "objectRemarks");

                return this;
            }
        }

        public Criteria andObjectRemarksIn(String[] values) {
            if (values.length == 1) {
                return andObjectRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                    " in", Arrays.asList(values), "objectRemarks");

                return this;
            }
        }

        public Criteria andObjectRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andObjectRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                    " not in", Arrays.asList(values), "objectRemarks");

                return this;
            }
        }

        public Criteria andObjectRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectRemarksBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " between", value1, value2, "objectRemarks");

            return this;
        }

        public Criteria andObjectRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectRemarks +
                " not between", value1, value2, "objectRemarks");

            return this;
        }

        public Criteria andObjectPackageIdIsNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " is null");

            return this;
        }

        public Criteria andObjectPackageIdIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " is not null");

            return this;
        }

        public Criteria andObjectPackageIdIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " is not null AND " +
                IProductModelObjectRelateDAO.ObjectPackageId + " <> ''");

            return this;
        }

        public Criteria andObjectPackageIdIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.ObjectPackageId +
                " is null OR " + IProductModelObjectRelateDAO.ObjectPackageId +
                " = '')");

            return this;
        }

        public Criteria andObjectPackageIdEqualTo(long value) {
            return andObjectPackageIdEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectPackageIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " = ",
                value, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdNotEqualTo(long value) {
            return andObjectPackageIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectPackageIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " <>",
                value, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdNotEqualToOrIsNull(long value) {
            return andObjectPackageIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andObjectPackageIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " is null OR " + IProductModelObjectRelateDAO.ObjectPackageId +
                " <>", value, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdGreaterThan(long value) {
            return andObjectPackageIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andObjectPackageIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " >",
                value, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdGreaterThanOrEqualTo(long value) {
            return andObjectPackageIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectPackageIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " >=",
                value, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdLessThan(long value) {
            return andObjectPackageIdLessThan(Long.valueOf(value));
        }

        public Criteria andObjectPackageIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " <",
                value, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdLessThanOrEqualTo(long value) {
            return andObjectPackageIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectPackageIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " <=",
                value, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdIn(long[] values) {
            if (values.length == 1) {
                return andObjectPackageIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                    " in", values, "objectPackageId");

                return this;
            }
        }

        public Criteria andObjectPackageIdNotIn(long[] values) {
            if (values.length == 1) {
                return andObjectPackageIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                    " not in", values, "objectPackageId");

                return this;
            }
        }

        public Criteria andObjectPackageIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectPackageIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                    " in", values, "objectPackageId");

                return this;
            }
        }

        public Criteria andObjectPackageIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectPackageIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                    " not in", values, "objectPackageId");

                return this;
            }
        }

        public Criteria andObjectPackageIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectPackageIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                    " in", Arrays.asList(values), "objectPackageId");

                return this;
            }
        }

        public Criteria andObjectPackageIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectPackageIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                    " not in", Arrays.asList(values), "objectPackageId");

                return this;
            }
        }

        public Criteria andObjectPackageIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageIdBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " between", value1, value2, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " between", value1, value2, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " not between", value1, value2, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageId +
                " not between", value1, value2, "objectPackageId");

            return this;
        }

        public Criteria andObjectPackageNameIsNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " is null");

            return this;
        }

        public Criteria andObjectPackageNameIsNotNull() {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " is not null");

            return this;
        }

        public Criteria andObjectPackageNameIsNotEmpty() {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " is not null AND " +
                IProductModelObjectRelateDAO.ObjectPackageName + " <> ''");

            return this;
        }

        public Criteria andObjectPackageNameIsEmpty() {
            addCriterion("(" + IProductModelObjectRelateDAO.ObjectPackageName +
                " is null OR " +
                IProductModelObjectRelateDAO.ObjectPackageName + " = '')");

            return this;
        }

        public Criteria andObjectPackageNameEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " = ", value, "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageNameEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameNotEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " <>", value, "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " is null OR " +
                IProductModelObjectRelateDAO.ObjectPackageName + " <>", value,
                "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameGreaterThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName + " >",
                value, "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " >=", value, "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameLessThan(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName + " <",
                value, "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageNameLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " <=", value, "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelObjectRelateDAO.ObjectPackageName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectPackageNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " like", buffer.toString(), "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " not like", buffer.toString(), "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectPackageNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                    " in", values, "objectPackageName");

                return this;
            }
        }

        public Criteria andObjectPackageNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andObjectPackageNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                    " not in", values, "objectPackageName");

                return this;
            }
        }

        public Criteria andObjectPackageNameIn(String[] values) {
            if (values.length == 1) {
                return andObjectPackageNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                    " in", Arrays.asList(values), "objectPackageName");

                return this;
            }
        }

        public Criteria andObjectPackageNameNotIn(String[] values) {
            if (values.length == 1) {
                return andObjectPackageNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                    " not in", Arrays.asList(values), "objectPackageName");

                return this;
            }
        }

        public Criteria andObjectPackageNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andObjectPackageNameBetween(String value1, String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " between", value1, value2, "objectPackageName");

            return this;
        }

        public Criteria andObjectPackageNameNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelObjectRelateDAO.ObjectPackageName +
                " not between", value1, value2, "objectPackageName");

            return this;
        }
    }
}
